Media packet processors such as voice over Internet protocol (VoIP) gateways, T.38 fax gateways and VoIP conference bridges are vulnerable to denial of service attacks on user datagram protocol (UDP) ports open for active channels. In particular, since these ports are “open,” packets arriving on them are accepted, even if they are not actually part of an authorized media stream. Accordingly, rogue or malicious data packets can affect resources common to all open channels associated with a media packet processor, even if the rogue or malicious packets are received on only one of the open channels. As a result, the common resources, for example network interface buffers, bus bandwidth for access to another resource, or processing resources associated with a digital signal processor (DSP) farm can become partially or entirely consumed by the rogue or malicious data packet flow. Rogue flow may include data packets produced by a malfunctioning device, such as an insane VoIP endpoint. An example of a malicious data packet flow is a denial of service attack against a network resource.
In order to prevent a burst of traffic at a port from overwhelming associated resources, traffic shaping schemes have been developed. In particular, such schemes attempt to control the rate at which data packets arrive at a port. Traffic shaping can be implemented through a leaky bucket arrangement, in which data packets are collected in a buffer and then metered out to the data port periodically. When the buffer is entirely full, any additional data packets arriving at the port will be lost. In addition, the leaky-bucket type arrangement has no provision for adjusting the rate at which data packets are allowed to pass to the port.
Another type of traffic shaping mechanism is the token bucket mechanism. According to a token bucket scheme, the bucket is filled with tokens at a predetermined rate. The maximum number of tokens that can be contained by the bucket at an instant in time defines the burst size. As data packets arrive at a port, a queue regulator requests a token for the packet. If a token is available, the data packet is allowed to pass through the port. If a token is not available, the data packet may be queued at the interface between the port and the communication network over which the data packet arrived.
Both the leaky bucket and token bucket mechanisms for controlling access to a data port can function to control the rate at which data packets are passed through a data port to resources. However, such mechanisms are not capable of adjusting their operation in order to account for observable changes in a data packet stream.